/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package smary.ejb.entity;

import java.io.Serializable;
import java.util.Set;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * Die Scrumprojekt Entität stellt eine Liste der vorhandenen Scrum
 * Projekte dar.
 * @author Alex
 */
@Entity
@Table(name = "SCRUMPROJEKT")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Scrumprojekt.findAll", query = "SELECT s FROM Scrumprojekt s"),
    @NamedQuery(name = "Scrumprojekt.findByScrumprojektid", query = "SELECT s FROM Scrumprojekt s WHERE s.scrumprojektid = :scrumprojektid"),
    @NamedQuery(name = "Scrumprojekt.findByScrumprojektbezeichnung", query = "SELECT s FROM Scrumprojekt s WHERE s.scrumprojektbezeichnung = :scrumprojektbezeichnung"),
    @NamedQuery(name = "Scrumprojekt.findByScrumprojektbeschreibung", query = "SELECT s FROM Scrumprojekt s WHERE s.scrumprojektbeschreibung = :scrumprojektbeschreibung")})
public class Scrumprojekt implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "SCRUMPROJEKTID")
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Integer scrumprojektid;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2048)
    @Column(name = "SCRUMPROJEKTBEZEICHNUNG")
    private String scrumprojektbezeichnung;
    @Size(min = 1, max = 32700)
    @Column(name = "SCRUMPROJEKTBESCHREIBUNG")
    private String scrumprojektbeschreibung;

    @OneToMany(mappedBy="scrumprojekt")
    protected Set<Productbacklog> productbacklogs;
    
    @OneToMany(mappedBy="scrumprojekt")
    Set<Scrumteam> scrumteams;

    public Set<Scrumteam> getScrumteams() {
        return scrumteams;
    }

    public void setScrumteams(Set<Scrumteam> scrumteams) {
        this.scrumteams = scrumteams;
    }
    

    public Set<Productbacklog> getProductbacklogs() {
        return productbacklogs;
    }

    public void setProductbacklogs(Set<Productbacklog> productbacklogs) {
        this.productbacklogs = productbacklogs;
    }
    
    public Scrumprojekt() {
    }

    public Scrumprojekt(Integer scrumprojektid) {
        this.scrumprojektid = scrumprojektid;
    }

    public Scrumprojekt(Integer scrumprojektid, String scrumprojektbezeichnung) {
        this.scrumprojektid = scrumprojektid;
        this.scrumprojektbezeichnung = scrumprojektbezeichnung;
    }

    public Integer getScrumprojektid() {
        return scrumprojektid;
    }

    public void setScrumprojektid(Integer scrumprojektid) {
        this.scrumprojektid = scrumprojektid;
    }

    public String getScrumprojektbezeichnung() {
        return scrumprojektbezeichnung;
    }

    public void setScrumprojektbezeichnung(String scrumprojektbezeichnung) {
        this.scrumprojektbezeichnung = scrumprojektbezeichnung;
    }

    public String getScrumprojektbeschreibung() {
        return scrumprojektbeschreibung;
    }

    public void setScrumprojektbeschreibung(String scrumprojektbeschreibung) {
        this.scrumprojektbeschreibung = scrumprojektbeschreibung;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (scrumprojektid != null ? scrumprojektid.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Scrumprojekt)) {
            return false;
        }
        Scrumprojekt other = (Scrumprojekt) object;
        if ((this.scrumprojektid == null && other.scrumprojektid != null) || (this.scrumprojektid != null && !this.scrumprojektid.equals(other.scrumprojektid))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return getScrumprojektid() + " " + getScrumprojektbezeichnung();
    }
    
}
